package com.huang.dao;

import com.huang.pojo.*;

import java.util.List;

public interface StudentMapper {

    //学生简单注册
    int registerStudent(Student student);

    //通过学号查找学生
    Student findStudentByNo(Student student);

    //学生个人信息完善
    int improveStudentMsg(Student student);

    //学生登陆
    Student loginStudent(Student student);

    //产看活动列表
    List<Activity> showActivity();

    //学生报名活动
    int signUpActivity(ActivityPeople activityPeople);

    //学生本人的活动
    List<Activity> myActivity(ActivityPeople activityPeople);

    //学生申请学分
    int applyScore(ApplyScore applyScore);

    //审核中的活动
    List<Activity> reviewActivity(Student student);

    //审核通过的活动
    List<Activity> passActivity(Student student);

    //激活账号
    int activationAccount(Student student);

    //学生忘记密码(更改密码)
    int changePwd(Student student);

    //学生对公告进行反馈
    int feedBackStu(FeedBack feedBack);

    //学生界面展示公告
    List<Announcement> showNoticeStu(Announcement announcement);

    //学生查看自己的反馈
    List<FeedBack> showFeedBackStu(FeedBack feedBack);

    //学生查看自己的审核未通过
    List<Activity> showUnPassApply(Student student);

    //学生查看自己的学分
    List<StudentScore> showSelfScore(Student student);

    //学生撤销申请中的活动
    int removeApplyStu(ApplyScore applyScore);

    //学生查看自己的审核中活动的备注
    List<ApplyScore> showSelfApplyMsgStu(ApplyScore applyScore);

    //学生上传头像
    int uploadAvatar(UserAvatar userAvatar);

    //初始化头像
    int initializeAvatar(UserAvatar userAvatar);

    //判断是否初始化了
    UserAvatar JudgeAvatar(UserAvatar userAvatar);

    //上传身份照
    int uploadIdPhoto(UserAvatar userAvatar);

    //学生活动日志---登陆时间记录
    int stuLoginRecord(UserDiary userDiary);

    //学生活动日志---退出登陆时间记录
    int stuLogoutRecord(UserDiary userDiary);

    //学生活动日志---具体操作和操作时间
    int stuOperateRecord(UserDiary userDiary);

    //学生查看日志
    List<UserDiary> viewSelfDiary(Student student);

    //学生报名活动成功后剩余名额的联动
    int updateActivityQuota(Activity activity);

    //学生上传申请学分附件
    int uploadApplyAnnex(ApplyScore applyScore);

    //学生申请学分，带附件
    int applyScoreWithAnnex(ApplyScore applyScore);

    //校验是否已经报过名
    List<ActivityPeople> ifSignUp(ActivityPeople activityPeople);

    //用户查看日志详情
    List<UserDiary> viewUserDiaryDetail(UserDiary userDiary);

    //根据很多属性去查找唯一的申请信息
    ApplyScore findApplyByNoAndTime(ApplyScore applyScore);
}
